This specification generally relates to computer-based techniques for placing and rendering virtual objects in three-dimensional (3D) environments.
Various computing systems have been developed that render 3D environments. By way of example, virtual reality (VR) systems render a 3D environment that can be presented to a user wearing a head-mounted display. The head-mounted display may include an electronic display screen and optical lenses through which the user views the screen and the displayed 3D environment. The system can render the 3D environment stereoscopically on the screen, which creates the illusion of depth to a user when viewed through the lenses of the head-mounted display. Some VR systems provide an immersive user experience so the user feels as if he or she is actually present in the virtual environment. Some VR systems allow a user to look or move around the 3D environment, and to manipulate virtual objects within the 3D environment.
As another example, augmented reality systems have been developed that augment views of a real-world environment with virtual objects. The virtual objects can be formatted so that they appear as if they are part of the real-world environment, such as a virtual robot that appears in live video of a laboratory setting or a virtual pet that appears in live video of a residence. Some augmented reality systems are mixed reality systems, which augment direct real-world views of an environment with virtual objects that appear as if they are located in the environment. A direct real-world view of the environment may be seen through fully or semi-transparent lenses of a head-mounted display device, for example, in contrast to a video feed of the environment that provides an indirect view.